package com.bootdo.common.utils;


import ws.schild.jave.*;

import java.io.File;

/**
 * @author SiMan
 * @date 2019/11/12 20:01
 */
public class VideoTranscodeUtil {
	private EncodingAttributes encodingAttributes;
	private Encoder encoder;

	public void Transcode (String source, String target) {
		File sourceFile = new File(source);
		File targetFile = new File(target);
		MultimediaObject multimediaObject = new MultimediaObject(sourceFile);
		// 视频参数
		VideoAttributes video = new VideoAttributes();
		// 视频编码器
		video.setCodec("h264");
		//视频分辨率
//		video.setSize(new VideoSize(640, 264));
		// 音频参数
		AudioAttributes audio = new AudioAttributes();
		// 音频 编码器
		audio.setCodec("aac");
		// 比特率
		audio.setBitRate(128000);
		// 声道
		audio.setChannels(2);
		//音量
		audio.setVolume(10);

		encodingAttributes = new EncodingAttributes();
		// 加入视频参数
		encodingAttributes.setVideoAttributes(video);
		// 加入音频参数
		encodingAttributes.setAudioAttributes(audio);
		// 设置输出格式
		encodingAttributes.setFormat("MP4");

		encoder = new Encoder();
		// 开始转码
		try {
			encoder.encode(multimediaObject,targetFile,encodingAttributes);
		} catch (EncoderException e) {
			e.printStackTrace();
		}
	}

}
